package org.wu.reggie.common;


import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import org.wu.reggie.exception.LogicException;

/**
 * springmvc提供了全局异常处理机制，需要使用的注解
 */
//@ControllerAdvice 表示该类是一个异常处理类
@ControllerAdvice(annotations = {Controller.class, RestController.class})
@ResponseBody // 该类返回的数据全部都会转换为json字符串
@Slf4j
public class GlobalExceptionHandler {


    // @ExceptionHandler(value = Exception.class) 代表了该方法会处理所有的异常 只要controller那边出现了异常都会给方法处理
    @ExceptionHandler(value = LogicException.class)
    public Object handlerException(LogicException e) {
        //一旦controller出现了异常就会把异常的对象传递给形参
        log.info("=========异常处理===========");
        e.printStackTrace();
        return R.error(e.getMessage());

    }


}
